<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
  <TITLE>prog2aufg6</TITLE>
  <LINK rel=stylesheet type="text/css" media="screen" href="screen.css">
  <LINK rel=stylesheet type="text/css" media="print" href="print.css">
</HEAD>
<BODY>
<P><FONT SIZE="3">Hochschule Augsburg &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17. 4. 2011<BR>
Fakult&auml;t f&uuml;r  Informatik<BR>
Prof. Meixner</FONT>
<H3> <FONT SIZE="3"><B>Praktikum Programmieren 2 im Studiengang Informatik</B></FONT> </H3>
<h3> <FONT SIZE="3"><B>Aufgabe 6</B></FONT></h3>
<h4>1. Teil: Logging und Dynamic Proxy</h4>
<P>Versehen Sie die Bank mit einem dynamischen Proxy, der unter Zuhilfenahme des Logging-Frameworks bei eingestelltem Log-Level <code>FINE</code> jeden Methodenaufruf mit &Uuml;bergabeparametern und R&uuml;ckgabewert bzw. aufgetretene Exception in einem Log-File mitprotokolliert. &Uuml;berlegen Sie sich, welche Vorg&auml;nge bei gr&ouml;beren Log-Leveln bereits interessant sein k&ouml;nnten. Insbesondere soll beim Einzahlen eines Geldbetrags gr&ouml;&szlig;er gleich 1 Mio bereits bei Log-Level <code>INFO</code> die Ausgabe erfolgen (als Hinweis f&uuml;r die Bank-interne Schwarzgeld-Aufsp&uuml;rabteilung). <br>Untersuchen Sie Ihren Code weiter auf sinnvolle Verwendung des Logging-Frameworks. Insbesondere sollten keine <code>System.out.println()</code>-Anweisungen &quot;hinter&quot; der Bank-Schnittstelle mehr auftreten.<br>
Die Konfiguration des Logging-Frameworks ist nat&uuml;rlich &uuml;ber eine externe Datei zu realisieren.
<h4>2. Teil: Testen mit JUnit
</h4>
<P>Arbeiten Sie sich in das Testframework JUnit 4 ein und f&uuml;hren Sie f&uuml;r die Klasse <code>Money</code> Unit-Tests f&uuml;r alle Methoden ein. Wer noch Skrupel hinsichtlich seiner Money-Klasse hat, bitte Refactoring durchf&uuml;hren. Anregungen f&uuml;r eine sinnvolle Implementierung von <code>Money</code> finden Sie in dem Buch von Martin Fowler &uuml;ber Architektur-Patterns, das im Labor M302 in der Handbibliothek steht.
<P>Verwenden Sie JUnit 4 au&szlig;erdem, um charakteristische Testf&auml;lle f&uuml;r Ihre Bank-Implementierung durchzuf&uuml;hren (Integrationstest). Die formalisierten Tests sollen damit mehr oder weniger das ersetzen, was Sie bisher als Ad-Hoc-Test in Ihrer <code>main()</code>-Methode durchgef&uuml;hrt haben.
<P>
<P><B>Abnahme: i. d. R. am 5.5. bzw. 9. 5.., sp&auml;testens am 12.5. bzw. 16. 5.!</B>
</BODY></HTML>
